1
Шестнадцатеричная система счисления и виртуальное адресное пространство
AI031Lesson 2
00:00

Погрузитесь в Вид программы на уровне машины, где сложность аппаратных средств абстрагирована в структурированное виртуальное адресное пространство. В этом представлении память — это не набор переменных, а огромный, непрерывный массив блоков по 8 битов, называемых байтами. Для машины с разрядностью слова $w$ адреса находятся в диапазоне от $0$ до $2^w - 1$, что определяет границы доступа программы.

1. Сила числа 16

Двоичная система — язык схем, но шестнадцатеричная система счисления — это язык программистов. Поскольку $16 = 2^4$, один шестнадцатеричный символ (0–F) идеально соответствует 4-битному полубайту. Это позволяет выразить значение одного байта компактно ровно двумя цифрами (например, 0xFF). Эта краткая запись необходима для чтения машинного кода и ассемблерного кода, например, инструкция 4004dc: 48 03 47 28.

Рисунок 2.2: Соответствие шестнадцатеричной, двоичной и десятичной системШестн.Дес.Двоич.01...9ABCDEF01...910111213141500000001...1001101010111100110111101111 Правило: чтобы преобразовать дес. x в шестнадцатеричную, многократно вычисляйте x = q ⋅ 16 + r

2. Точность и арифметика

При работе с целыми типами данных, мы сталкиваемся с булевыми кольцами и дополнением до двух логикой. Нам нужно ориентироваться в хранении в порядке малого конца хранении, переполнение целых чисел, и тонкостях одинарной точности плавающей точки, где бесконечность ($+\infty$) и NaN находятся. Понимание этих битовых шаблонов — первый шаг к освоению арифметики произвольной точности и надежного системного программирования.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>